Client-server applications often require the synchronization of data between client and server components of the application. Examples of client-server applications requiring the synchronization of data are third party applications built on the QuickBooks® accounting software provided by Intuit Inc. A software developer's kit (SDK) provided for QuickBooks provides an interface between third party applications and QuickBooks which allows third party applications to query, add, edit and delete records from a QuickBooks client accounting database via the QuickBooks SDK. Using the QuickBooks SDK, third party applications can send XML (eXtensible Markup Language) requests and receive XML responses to interact with QuickBooks and the respective client accounting database(s). Other accounting software products such as PeachTree™ provided by Sage Software, Simply Accounting™ provided by Sage Software, Microsoft Dynamics™ provided by Microsoft Corporation, and Microsoft Small Business Accounting™ provided by Microsoft Corporation, each have SDKs and/or application programming interfaces (APIs) which provide similar functionality for third party application developers.
An example of a “synching tool” for synchronizing accounting data between a client and server is QuickBooks Web Connector™. QuickBooks Web Connector is a local application on the client computer which acts as a shuttle between a third party developer's Web service and the QuickBooks SDK. The connection is initiated on the client computer which receives a set of “requests” from the Web service, processes the requests, and returns a set of responses to the developer's Web service. The initiation of a “synchronization operation” (also referred to as a “synch operation”) is made by the end user from the local application on demand or at specific intervals in accordance with application settings.
Existing synching tools; however, have shortcomings. For example, in the context of QuickBooks, there is no known method by which the QuickBooks Web Connector allows a synch operation to be initiated by a Web service on demand. A Web service developer can only specify an interval at which a Web service performs a synchronization operation. Moreover, there is no known method by which a developer can initiate a synch operation from the client computer automatically via programming code. Therefore, if a record is changed on the client computer there is no practical way to notify the Web service that the record has changed.
Thus, there remains a need for improved methods and systems of synchronizing accounting data between a client and server.
Like reference numerals are used in the drawings to denote like elements and features.